Device action service

ABSTRACT

A user may operate many devices, each of which may provide a set of actions, such as installing firmware or software or viewing the contents of the device. However, in order to perform these actions, the user may have to interact with each device using a different user interface, resulting in an inconsistent user experience. Instead, a device action service may allow a user to identify his or her devices, may identify the actions available for each device (e.g., by interacting with a device source of each device, such as a manufacturer); and upon the request of the user, may present a list of the user&#39;s devices and the actions available for each device. The actions may comprise hyperlinks to various portions of the website of the device source (e.g., a driver page and a service registration page), or controls invoking the requested action upon the device.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of and claims priority to U.S.patent application Ser. No. 12/963,157, filed Dec. 8, 2010 and alsoentitled “Device Action Service,” the entirety of which is incorporatedby reference as if fully rewritten herein.

BACKGROUND

Within the field of computing, many scenarios involve a set of devicesoperated by a user, such as a mobile phone, a portable game device, anda portable media player. Each device may comprise a particular set ofcapabilities (e.g., a display of a particular size and quality; one ormore input devices; a data store of a particular size; communicationcomponents, such as a network adapter, a cellular communication device,or a global positioning service (GPS) receiver; and an operatingenvironment comprising a set of applications, media objects, and userdata objects). Each device may operate in isolation, or may interoperatewith one or more other devices and data sources accessible over anetwork such as the internet.

With respect to these devices, a user may wish to perform variousactions. As a first example, the user may wish to access the data storeof a device, e.g., in order to view the data objects stored therein, orto upload or download new data objects to or from the device. As asecond example, the user may wish to install a new hardware driver orsoftware application on the device. As a third example, the user maywish to establish or perform an interoperation of the device withanother device, e.g., establishing or performing a synchronizationoption to synchronize the data object in the data store of the devicewith equivalent data objects stored in the data tore of another device.

In order to perform these actions, the user often utilizes anadministrative interface of the device. As a first example, in order toinstall a new software package or hardware driver on a workstationcomputer, the user may, using the workstation computer, visit a websiteof a distributor of the software package or hardware driver, download aninstaller package, and execute the installer package on the workstation.As a second example, the user may configure a first device using asecond device; e.g., in order to upload one or more media objects to aportable media player, the user may download the media objects to aworkstation computer, connect the portable media player to theworkstation computer, and send the media objects from the workstationcomputer to the portable media player. As a third example, the user maysubscribe a particular device to a service that the device may accessthrough a communication device. For example, a user may subscribe to achat service accessible over the internet, and may register a mobilephone device with the chat service in order to engage in chat sessionsof the chat service with other users through the mobile phone (e.g., byinstalling a software chat client on the mobile phone). In this manner,the user may perform various actions upon the devices operated by theuser.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

A user of a set of devices that may be individually operated andadministrated may encounter several disadvantages. As a first example,in order to identify his or her devices and exploring the device stateof each device, the user may have to interact individually with eachdevice. As a second example, in order to perform actions upon thedevices, the user may have to operate each device in isolation (e.g.,operating a first device to download and install thereupon a hardwaredriver or software application, and operating a second device todownload and install thereupon the same or a different hardware driveror software application), and/or utilize loosely coupled interoperationof the devices (e.g., downloading the hardware driver or softwareapplication to a first device for delivery to and installation upon asecond device). The isolation and/or loose interoperation of the devicesmay hamper the application of actions, such as the administration of thedevices in order to synchronize data, by necessitating the use ofdifferent interfaces on different devices. For example, although severaldevices operated by the user may feature a similar set of actions (e.g.,view contents, play media object, and install hardware driver), the userinterface of the first device through which these actions are performedmay be very different from the user interface on a second device forperforming the same actions, and a third device may have to utilizeanother device in order to perform the same actions (e.g., in order tocopy a media object to a portable media player, the user may have todownload the media object to a workstation computer and then synchronizethe media library of the workstation computer with the portable mediaplayer). The use of a plurality of divergent user interfaces to performa standard set of actions on several devices may present an inconsistentand frustrating user experience for the user.

Presented herein are techniques for facilitating and improving theconsistency of the performance of actions on a set of devices operatedby a user. In accordance with these techniques, a device action servicemay be created to identify, for respective devices (e.g., for particularmodels of mobile phones, portable game devices, and portable mediaplayers), a set of actions that may be performed on the devices. Forexample, the device action service may, by communicating with amanufacturer of a particular model of mobile phone, determine that themobile phone supports a set of actions comprising “activate mobileservice,” “install hardware driver,” and “view address book.” Themanufacturer may also provide instructions for performing these actions;e.g., the activation of mobile service may be performed by visiting anactivation web page of the website of the manufacturer; a hardwaredriver may be installed by downloading and executing a software packagestored at a particular location of the website of the manufacturer; andthe contents of the address book may be viewed by sending a particularsignal to the mobile phone. Additional actions may be identified forother devices, and these actions may be stored in association with thedevices in a data store. The device action service may then permit eachuser to identify the set of devices that the user operates, and maystore the set of devices. The user may then request a presentation ofthe set of devices operated by the user. The device action service maypresent a list of the user's devices, including, for each device, a setof actions that may be performed on the device. The user may select theactions from the list in order to perform the corresponding actions onthe device.

As compared with the conventional operation of the devices, the use of adevice action service configured in this manner may present severaladvantages to the user. As a first example, instead of the user havingto operate each device separately, the device action service mayrepresent a centralized location where the user may identify and exploreeach of the devices operated by the user. As a second example, byproviding access to the set of actions for each device in a unified userinterface (e.g., a single web page listing the set of actions availablefor each device in a standardized manner, irrespective of the types ofdevices and/or actions involved), the device action service may presenta more consistent and comprehensive user interface for theadministration of the devices than may be presented by different userinterfaces of different devices. As a third example, the device actionservice may be accessed on any device operated by the user, therebypresenting a consistent and comprehensive portal to the user's set ofdevices, regardless of which device the user operates to access thedevice action service.

Additional variations of these techniques may present still furtheradvantages in the implementation of a device action service. As a firstexample, the device action service may be extensible, such thatrespective manufacturers may register new device types with the deviceaction service and may provide updated sets of actions that may beperformed thereupon. As a second example, for an unidentified device(e.g., a device for which the manufacturer cannot be determined or hasnot specified a set of actions for the device), the device actionservice may present to the user a set of generic actions that may beperformed on the device. As a third example, the device action servicemay integrate the presentation of devices with services to which theuser subscribes, and may permit the user to register devices withservices. As a fourth example, the device action service may present tothe user advertisements for products or services that may be availablefor the devices, and in particular, may present products and servicesbased on a device state of a device (e.g., “your device is running lowon storage space; would you like to subscribe to a cloud storage servicein order to offload some data?”) These and other advantages may beachieved through the design of the device action service to identify andoffer actions available for devices operated by a set of users.

To the accomplishment of the foregoing and related ends, the followingdescription and annexed drawings set forth certain illustrative aspectsand implementations. These are indicative of but a few of the variousways in which one or more aspects may be employed. Other aspects,advantages, and novel features of the disclosure will become apparentfrom the following detailed description when considered in conjunctionwith the annexed drawings.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an exemplary scenario featuring a userperforming various actions upon a set of device.

FIG. 2 is an illustration of an exemplary scenario featuring a varietyof different user interfaces of various devices that may perform adesired action thereupon.

FIG. 3 is an illustration of an exemplary scenario featuring theapplication of actions to devices using a device action service inaccordance with the techniques presented herein.

FIG. 4 is a flow chart illustrating an exemplary method of presenting toa user a set of devices operated by the user.

FIG. 5 is a component block diagram illustrating an exemplary system forpresenting to a user a set of devices operated by the user.

FIG. 6 is an illustration of an exemplary computer-readable mediumcomprising processor-executable instructions configured to embody one ormore of the provisions set forth herein.

FIG. 7 is an illustration of an exemplary scenario featuring anassociation with a device of actions received from various devicesources.

FIG. 8 is an illustration of an exemplary scenario featuring anexemplary presentation of actions available for the devices of the user.

FIG. 9 illustrates an exemplary computing environment wherein one ormore of the provisions set forth herein may be implemented.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the claimed subject matter. It may beevident, however, that the claimed subject matter may be practicedwithout these specific details. In other instances, structures anddevices are shown in block diagram form in order to facilitatedescribing the claimed subject matter.

Within the field of computing, many scenarios may involve a useroperating a set of devices. In particular, recent developments in mobilecomputing have yielded a wide range of portable devices, includingnotebook computers of various form factors, personal data assistants(PDAs), media players such as MP3 players and digital versatile disc(DVD) players, portable document readers, a wide range of mobile phonesand other communication devices, digital cameras, and game devices.Additionally, the user may operate a series of non-portable devices,such as workstation computers, printers, home theater systems, mediacenter devices, video recording equipment, network-attached storage(NAS) devices, home security and/or automation systems, and othernetworked appliances. Each device may be provided by a device source,such as a manufacturer, a retail distributor, an e-commerce site, or anadministrator of an employer, organization, or academic institution towhich the user belongs. Each device may also be of a particular devicetype (e.g., a particular device model that is offered by a manufacturer)and/or a device category (e.g., a class of devices having a similar setof capabilities, such as media player device category comprising devicesthat are capable of storing and rendering various forms of media, and amobile phone device category comprising network-connected devices thatare capable of initiating or receiving a voice communication sessionbetween two or more users of such devices).

The capabilities of each device may be presented to the user as one ormore actions that are available for the device, and in order to operatethe respective devices, the user may interact with the devices torequest to perform one or more actions thereupon. For example, the usermay interact with a mobile phone to request access to the set ofcontacts or to initiate or receive a call or simple messaging service(SMS) message; with a game device to install or play a particular game;and with a media player to view the media library stored on the deviceor to play a particular media object. The devices of a device categorymay also support a similar set of actions associated with standarddevice capabilities of the device category; e.g., any device within thedevice category of media players is likely able to support the “viewmedia library” and “play media object” actions. Some actions may applyto a large set of devices of different device categories. For example,many devices featuring a data store may support a “view contents of datastore” action, and many devices featuring an operating environmentgenerated by a firmware stored on a flash memory device may support an“install firmware” operation. In order to perform a particular action ona particular device, the user may operate a user interface of thedevice. For example, a device of a particular device type may include adisplay component (such as a liquid crystal display (LCD)) and a set ofhardware controls (such as buttons or a touch-sensitive display), andmay present a user interface that allows the user to view availableactions and select a desired action. In some such scenarios, the usermay have to operate a first device in order to perform a desired actionon a second device; e.g., in order to install firmware, a hardwaredriver, or a software package on a portable device having limited or nonetwork connectivity, the user may have to download the firmware,hardware driver, and/or software package onto a network-connected device(such as a workstation computer), and then synchronize the latter devicewith the portable device in order to deliver the installable component.

FIG. 1 presents an illustration of an exemplary scenario 10 featuring auser 12 operating a set of devices 14, such as a first device 14comprising a mobile phone, a second device 14 comprising a portable gamedevice, and a third device 14 comprising a portable media player. Eachof these devices 14 may provide a set of actions 16 that control variouscapabilities of the device 14, and in order to operate respectivedevices 14, the user 12 may request to perform various actions 16related thereto. For example, the user 12 may request to view the set ofcontacts stored on the mobile phone device; to play a particular game onthe portable game device; and to view or listen to a particular mediaobject on the portable media player. Additionally, some actions 16 maybe available on many devices 14, even if such devices 14 are not withinthe same device category; e.g., all three devices 14 in this diversedevice set support an “install firmware” action 16 and a “view contents”action. Although the results of these operations may vary based on thedevice categories of the respective devices 14, such shared actions 16may generally represent a similar behavior to be performed on eachdevice 14.

The exemplary scenario 10 of FIG. 1 is frequently performed by users ofa set of devices 14 (both mobile and stationary), in part because suchdevices 14 often operate in an isolated or loosely coupled manner.However, the incomplete or lack of coupling among the devices 14 mayresult in some disadvantages. As a first example, in order toadministrate a particular device 14, the user 12 often has to performthe actions 16 on the actual device 14 (or a device 14 associated withit, such as a workstation computer configured to synchronize data with aportable media player), and cannot use any other device 14. If the user12 does not have physical access to the device 14—e.g., if the device 14is located in a different area—then the user 12 may be unable toconfigure the device 14. As a second example, the user 12 may have tooperate the user interface of the device 14 in order to perform actions16 thereupon; however, the user interface of a particular device 14 maybe substantially or complete different from the user interfaces of otherdevice 14 operated by the user 12. For example, a first device 14 mayprovide access to a set of actions 16 in a first user interface havingparticular characteristics (e.g., a text-based menu presented on an LCDand using buttons on the device to navigate the menu); a second device14 may provide access to a set of actions 16 using a second userinterface having particular characteristics (e.g., a graphical displayhaving a touch-based interface to select graphical options); and a thirddevice 14 may provide access to a set of options 16 using a third userinterface having particular characteristics (e.g., a networked devicethat may be accessed from a web browser to present web pages includingselectable actions 16). The widely divergent types of user interfacespresented by these devices 14 may significantly interfere with theefforts of the user 12 to administrate the devices 14. This interferencemay be particularly frustrating to the user 12, e.g., where the devices14 are similar (e.g., widely divergent user interfaces among devices 14in the same device category, and therefore having similar sets ofcapabilities), and/or where similar actions 16 are to be applied to thedevices 14 (e.g., efforts to identify the amount of available storagespace on each device 14 may involve completely different interactionswith the user interfaces thereof).

FIG. 2 presents an exemplary scenario 20 a user 12 who operates a firstdevice 14 comprising a mobile phone, a second device 14 comprising agame device, and a third device 14 comprising a media player (as well asa fourth device 14 comprising a notebook computer). The user 12 may wishto apply a particular action 16 to each of the devices 14, such asinstalling a firmware update. In some such scenarios 20, a singlefirmware update may apply to two or more of the devices 14 (e.g., wherethe devices 14 are provided by the same device source, such as a singlemanufacturer, or where the firmware update applies to a diverse set ofobjects, such as an update to a software component that is widelydeployed on many different devices 14). However, although the sameaction 16 is to be performed on all of the devices 14, the applicationof the action 16 may substantially differ from one device 14 to thenext. For example, the first device 22 may provide a text-based menu forthe user 12 to navigate in order to find and select an “installfirmware” option, which may instruct the first device 22 to download thefirmware update from the internet or from a cellular network (even ifthe user 12 has already downloaded the firmware update, e.g., using thenotebook computer). The second device 22 may be configured to receivethe firmware update on removable media 26, such as a flash memorydevice, and may request the user 12 to load the firmware update onto theremovable media 26 and press a hardware button to install the firmwareupdate. The third device 22 may apply the firmware update uponsynchronizing with the notebook computer; e.g., the user 12 may have touse the notebook computer to use a web browser to visit a website 22 ofthe device source, download the firmware update, and then synchronizewith the third device 14. In this manner, even though the user 12 seeksto perform the same action 16 on each device 14, the disparities amongthe user interfaces of the devices 14 may cause frustration andinefficiency.

Some efforts have been made to alleviate these disadvantages. As a firstexample, some recent developments seek to federate the set of devices 14into a tightly coupled “mesh,” where devices 14 are aware of the otherdevices 14 operated by the user 12, and may implicitly share andsynchronize data with other devices 14 to provide a consistent userexperience within a distributed computing environment, regardless ofwhich device 14 the user 12 operates to access the computingenvironment. As a second example, a “control panel” or synchronizationsuite of a computer may permit the user 12 to administrate a variety ofcomponents associated with the computer, including various componentswith which the computer interfaces. However, these techniques involvecomparatively tight coupling that may be difficult to implement; e.g.,the user 12 may not have a device capable of serving as a centralizedsource of administration, particularly if the failure of such a deviceresults in a loss of coupling among and impaired operability of thedevices 14. Additionally, these techniques may still limit theadministrative interoperability of the devices 14; e.g., the user 12 mayutilize a control panel of a computer to administrate the devices 14coupled thereto, but may not be able generally to perform actions 16 ona first device 14 using a second device 14, regardless of therelationship between the devices 14.

Presented herein are techniques for improving the experience of a user12 seeking to perform one or more actions 16 upon devices 14. Inaccordance with these techniques, a device action service may beprovided that may identify the devices of the user 12, and may presentto the user 21 a set of actions 16 that may be performed upon respectivedevices 14. For example, the device action service may communicate witha wide variety of device sources (e.g., various manufacturers of variousdevices 14) and, for respective device types (e.g., the device modelsoffered by a manufacturer), may identify a set of actions 16 that may beperformed thereupon. Such actions 16 may include, e.g., references toweb pages of the website of the device source where various actions 16may be performed (e.g., a web page providing a firmware update andinstructions for applying to the device 14, or a web page where usersmay activate a device 14 or register it with a service), such that whenthe user 12 selects the action 16, the corresponding web page of thewebsite of the device source is displayed. Such actions 16 may alsoinclude, e.g., the actual application of the action 16 to the device 14.For example, a device source may provide to the device action service anexecutable binary or script that may be executed to implement aparticular action 16 upon a device 14. The device action service mayalso permit a user 12 to register the devices 14 operated by the user12, and may store the identified devices 14 for future use. When theuser requests a presentation of the devices 14 operated by the user 12,the device action service may generate the presentation and send it tothe user 12.

In addition to identifying and describing the devices 14 of the user 12(e.g., the device source, device type, device category, and/or devicestate of the respective devices 14), the presentation may include a setof actions 16 that may be available for each device 14, based on theactions 16 that are available for devices 14 of the device type. Theuser 12 may be permitted to select an action 16 in relation to a device14, and the device action service may facilitate the user in performingthe action 16 (e.g., by presenting the web page of the device source ofthe device 14 that explains to the user 12 how to perform the action 16;by providing access to resources involved in the action 16, e.g., adownload link to a firmware update; and/or may directly apply the action16 to the device 14 (e.g., executing a script that targets and altersthe device 14 to perform the action 16). In this manner, the deviceaction service may improve the centralization and consistency of theperformance of the actions 16 upon the devices 14 (e.g., by providing asingle user interface that, in a consistent manner, lists the devices 14and the actions 16 that may be performed thereupon). Additionally, thedevice action service achieves this centralization without involving thetight coupling and heavy configuration that may be involved indesignating the devices 14 as a “mesh.” These and other advantages maybe achievable through the provision of a device action service and theuse thereof to perform various actions 16 on the devices 14 of the user12.

FIG. 3 presents an illustration of an exemplary scenario 30 featuringthe use of a device action service to perform various actions 16 upon aset of devices 14 operated by a user 12. In this exemplary scenario 30,each device 14 may support a plurality of actions 16. Therefore, thedevice action service (provided, in this exemplary scenario 30, by adevice action server 36) may communicate with one or more device sources32 to identify the set of actions 16 that may be available for variousdevice types (e.g., particular device models of the devices offered byeach device source 32). The device activity service may therefore storethe actions 16 (e.g., in a data store, such as a platter of a hard diskdrive or as records in a relational database) associated with the devicetypes provided by the respective device sources 32. Additionally, thedevice action service may permit the user 12 to create a user account34, and may allow the user 12 to register with the user account 34 a setof devices 14 operated by the user 12 and of a particular device type,including a first device 14 comprising a mobile phone, a second device14 comprising a portable game device, and a third device 14 comprising aportable media player. The device action service may therefore store thedevices 14 in the data store. When the user 12 requests a presentationof the set of devices 14 registered with the device action service, theserver 36 may generate and send to the user 12 a presentation 38 thatidentifies the devices 14 and the actions 16 that may be available foreach device 14. The actions 16 might simply be presented to the user 12(e.g., as recommendations for administrating the devices 14), may beselectable by the user 12 to view more information about the action 16(e.g., where the action 16 is presented as a hyperlink to a web page ofthe device source of the device 14), and/or may actually perform theaction 16 upon the device 14. In this manner, the device action servicemay facilitate the user 12 in performing actions 16 upon the devices 14.

FIG. 4 presents a first embodiment of these techniques, illustrated asan exemplary method 40 of presenting to a user 12 a set of devices 14operated by the user 12. The exemplary method 40 may be performed, e.g.,using a computer having a processor and a data store, and may beimplemented, e.g., as a set of software instructions stored in a memorycomponent of the computer (e.g., a system memory circuit, a platter of ahard disk drive, a solid-state storage device, or a magnetic or opticaldisc), where the instructions are configured to, if executed by theprocessor, cause the computer to perform the techniques presentedherein. The exemplary method 40 begins at 42 and involves executing 44the software instructions on the processor. In particular, the softwareinstructions are configured to identify 46 at least one action 16available for devices 14 of respective device types. The softwareinstructions are also configured to, upon receiving from a user 12 aregistration request to register a device 14 of a device type, associate48 the device 14 with the user 12 in the data store. The softwareinstructions are also configured to, upon receiving 50 from a user 12 apresentation request for a presentation of the devices 14 of the user12, retrieve 52 from the data store the devices 14 associated with theuser 12, and, for respective devices 14, present to the user 12 theactions 16 available for the device 14. Having achieved theidentification of the devices 14 of the user 12 and the presentation ofactions 16 that may be performed thereupon, the exemplary method 40causes the processor of the computer to perform the techniques presentedherein, and so ends at 56.

FIG. 5 presents a second embodiment of these techniques, illustrated asan exemplary scenario 60 featuring an exemplary system 66 configured topresent to a user 12 a set of devices 14 operated by the user 12. Theexemplary system 66 is included in a computer 62 having a processor 64,and may be implemented, e.g., as a set of software components thatinteroperate to cause the processor 64 of the device 62 to perform thetechniques presented herein. More particularly, the software componentsmay comprise a set of instructions stored in a memory component of thedevice 62 (e.g., system memory, a platter of a hard disk drive, asolid-state storage device, or a magnetic or optical disc) that causethe processor 64 to perform a particular task, such that the softwarecomponents, interoperating as provided herein, cause the device 62 toperform the techniques presented herein. In this exemplary scenario 60,the exemplary system 66 comprises a data store 68 configured toassociate at least one user 12 with at least one device 14. Theexemplary system 66 also includes a device action identifying component70, which is configured to identify at least one action 16 available fordevices 14 of respective device types (e.g., by receiving such actions16 from a device source 32 of the device 14). The exemplary system 66also includes a device registering component 72, which is configured to,upon receiving from a user 12 a registration request 76 to register adevice 14 of a device type, associate the device 14 with the user 12 inthe data store 68. The exemplary system 66 also includes a devicepresenting component 74, which is configured to, upon receiving from auser 12 a presentation request 78 for a presentation 38 of the devices14 of the user 12, retrieve from the data store 68 the devices 14associated with the user 12, for respective devices 14, present to theuser 12 the actions 16 available for the device 14. By implementingthese interoperating components, the exemplary system 66 present to theuser 12 the set of devices 14 operated by the user 12 and the actions 16that may be performed thereupon.

Still another embodiment involves a computer-readable medium comprisingprocessor-executable instructions configured to apply the techniquespresented herein. Such computer-readable media may include, e.g.,computer-readable storage media involving a tangible device, such as amemory semiconductor (e.g., a semiconductor utilizing static randomaccess memory (SRAM), dynamic random access memory (DRAM), and/orsynchronous dynamic random access memory (SDRAM) technologies), aplatter of a hard disk drive, a flash memory device, or a magnetic oroptical disc (such as a CD-R, DVD-R, or floppy disc), encoding a set ofcomputer-readable instructions that, when executed by a processor of adevice, cause the device to implement the techniques presented herein.Such computer-readable media may also include (as a class oftechnologies that are distinct from computer-readable storage media)various types of communications media, such as a signal that may bepropagated through various physical phenomena (e.g., an electromagneticsignal, a sound wave signal, or an optical signal) and in various wiredscenarios (e.g., via an Ethernet or fiber optic cable) and/or wirelessscenarios (e.g., a wireless local area network (WLAN) such as WiFi, apersonal area network (PAN) such as Bluetooth, or a cellular or radionetwork), and which encodes a set of computer-readable instructionsthat, when executed by a processor of a device, cause the device toimplement the techniques presented herein.

An exemplary computer-readable medium that may be devised in these waysis illustrated in FIG. 6, wherein the implementation 80 comprises acomputer-readable medium 82 (e.g., a CD-R, DVD-R, or a platter of a harddisk drive), on which is encoded computer-readable data 84. Thiscomputer-readable data 84 in turn comprises a set of computerinstructions 86 configured to operate according to the principles setforth herein. In one such embodiment, the processor-executableinstructions 86 may be configured to perform a method of presenting to auser a set of devices operated by the user, such as the exemplary method40 of FIG. 4. In another such embodiment, the processor-executableinstructions 86 may be configured to implement a system for presentingto a user a set of devices operated by the user, such as the exemplarysystem 66 of FIG. 5. Some embodiments of this computer-readable mediummay comprise a nontransitory computer-readable storage medium (e.g., ahard disk drive, an optical disc, or a flash memory device) that isconfigured to store processor-executable instructions configured in thismanner. Many such computer-readable media may be devised by those ofordinary skill in the art that are configured to operate in accordancewith the techniques presented herein.

The techniques discussed herein may be devised with variations in manyaspects, and some variations may present additional advantages and/orreduce disadvantages with respect to other variations of these and othertechniques. Moreover, some variations may be implemented in combination,and some combinations may feature additional advantages and/or reduceddisadvantages through synergistic cooperation. The variations may beincorporated in various embodiments (e.g., the exemplary method 40 ofFIG. 4 and the exemplary system 66 of FIG. 5) to confer individualand/or synergistic advantages upon such embodiments.

A first aspect that may vary among embodiments of these techniquesrelates to the scenarios wherein such techniques may be utilized. As afirst example, these techniques may be used with a variety of devices14, including various portable device (e.g., notebook computers ofvarious form factors, personal data assistants (PDAs), media playerssuch as MP3 players and digital versatile disc (DVD) players, portabledocument readers, a wide range of mobile phones and other communicationdevices, digital cameras, and game devices) and non-portable devices(e.g., workstation computers, printers, home theater systems, mediacenter devices, video recording equipment, network-attached storage(NAS) devices, home security and/or automation systems, and othernetworked appliances). As a second example of this first aspect, thesedevices 14 may have been provided by a variety of device sources 32,such as a manufacturer, a retail distributor, an e-commerce site, or anadministrator of a company, organization, or academic institution withwhich the user 12 is affiliated.

As a third example of this first aspect, many architectures may beselected for implementing these techniques. In a first such variation,the device action service may be implemented on a server (or set ofservers) operating in the cloud, such that a user 12 may register a setof devices 14 with the service for presentation as a web page. In thisvariation, the user 12 does not have any ownership or administration ofthe servers; rather, the device action service is wholly provided to theuser 12 by another organization, and the user 12 may interact with thedevice action service via a web browser. In a second such variation, oneor more devices 14 of the user 12 may be involved in implementing someor all of these techniques. In this variation, one or more servers maybe configured to store a representation of the devices of the user 12,but the presentation 38 may be partly or wholly generated by one or moredevices 14 of the user 12. For example, a device 14 of the user 12 mayinteract with the service to retrieve the set of devices 14 operated bythe user 12 and the actions 16 available therefor, and may prepare andpresent the presentation 38 of the devices 14 to the user 12 (e.g., bygenerating a web page including visual representations of the devices 14and the actions 16). Many such architectures may be suitable forimplementations the techniques presented herein.

As a fourth example of this first aspect, many types of actions 16 maybe identified as available for such devices 14 (including a deviceaction set of such actions 16), such as a software installing action(e.g., installing firmware or a firmware update, a driver for a hardwarecomponent, a patch for a software component, or an application); a datasynchronizing action (e.g., creating, reading, updating, or deletingdata stored on a device 14); a service registering action (e.g.,registering the device 14 with a particular service); a device stateviewing action (e.g., viewing a device state of a device 14, such as thecontents of a data store of the device 14, the available capacity of thedevice 14, or the charge of a battery powering the device 14); and adevice source visiting action (e.g., an instruction to visit a websiteassociated with the device source 32 of the device 14). These actions 16may also involve, e.g., presenting instructions to the user 12 forperforming the action 16 on the device 14; providing resources to theuser 12 involved in the action 16 (e.g., providing a firmware update tothe user 12 for delivery to the device 14); and/or actually performingthe action 16 on the device 14 (e.g., executing a script that alters thedevice in a particular manner). Those of ordinary skill in the art maydevise many such scenarios wherein the techniques presented herein maybe utilized.

A second aspect that may vary among embodiments of these techniquesrelates to the manner of identifying actions 16 available for devices 14of a device type (e.g., for a particular device model offered by adevice manufacturer). As a first example, the actions 16 may be providedby a device source of the device 14, such as a manufacturer, retaildistributor, or e-commerce site that has provided the device 14 to theuser 12. The actions 16 may also be specified by an administrator of acompany, organization, or academic institution that has provided thedevice 14 to the user 12; e.g., a hospital may deliver to healthcarepractitioners a set of devices 14 that are preloaded with healthcaresoftware such as medical record database clients, and may specify a setof actions 16 that may be performed to administrate the devices 14and/or assist the users 12 in understanding or utilizing the devices 14.Moreover, the device action service may extract the actions 16 frominformation that is generally provided by a device source 32, e.g., by(manually or automatically) scraping the actions 16 out of a web page ofa website of the device source 32. Alternatively, the device actionservice may form a cooperative interaction with one or more devicesources 32, such that the device sources 32 may directly inform thedevice action service of the actions 16 available for a particulardevice 14 or the devices 14 of a device type (e.g., by providing anextensible markup language (XML) document that specifically sets forththe set of actions 16 and the manner of performing respective actions16). These actions 16 may be delivered in an active manner (e.g., thedevice source 32 may send push notifications to the device actionservice) and/or a in a passive manner (e.g., the device action servicemay poll the device source 32 to receive adjustments to the set ofactions 16 available for a device 14). Moreover, upon receiving from adevice source 32 a new action 16 that may be available for a device 14,the device action service may actively notify users 12 of the device 14of the new action 16 that is available for the device 14. Suchnotification may be provided, e.g., as a pop-up notification (such as aninstant message), as a less intrusive notification (such as an emailmessage), and/or as a notification sent to the actual device 14 (e.g.,as a simple message service (SMS) message sent to a mobile device).

As a second example of this second aspect, for some devices 14, it maybe not be possible to receive from a device source 32 the actions 16that are available. For example, the device source 32 may beunidentified, may have become nonexistent (e.g., a device 14 produced bya defunct technology company), may be temporarily or permanentlyoffline, or may simply not cooperate with the device action service. Insuch cases, the device action service may be requested to register for auser 12 an unidentified device that does not have an association with adevice source 32, and to generate a presentation 38 including actions 16that may be available for the device 14. Accordingly, the device actionservice may be configured to associate with the unidentified device 14at least one generic action that may be available for the unidentifieddevice 14. As a first variation, the device action service may provide aset of generic actions 16 that are applicable to all devices, such asregistering, deregistering, connecting to, disconnecting from, andnaming or renaming the device 14 associated with the user account 34 ofthe user 12. As a second variation, the device action service may querythe device 14 to identify various properties (e.g., does the device 14provide a response if queried as a webserver?), and may associate withthe unidentified device 14 various actions 16 corresponding to theproperties of the device 14 (e.g., “query this device as a webserver”).As a third variation, the unidentified device 14 may be identifiable asbelonging to a particular device category, e.g., a storage device, amedia capturing device, or a media rendering device. The device actionservice may therefore identify one or more actions 16 that are oftenavailable for devices 14 within the device category, and may associatesuch actions 16 with the device 14.

FIG. 7 presents an exemplary scenario 90 featuring an identification ofactions 16 that may be available for respective devices 14 of particulardevice types. In this exemplary scenario 90, an exemplary system 94(such as the exemplary system 66 in the exemplary scenario 60 of FIG. 4)may be configured to identify (and to store in a data store 68) a set ofactions 16 for one or more device types, in case a user 12 subsequentlyrequests to register a device 14 of such a device type with theexemplary system 94 and to receive a presentation 38 of the actions 16available therefor. Accordingly, the exemplary system 94 may communicatewith a first device source 32 by extracting actions 16 for a device typefrom the information provided by the first device source 32. Inparticular, the first device source 32 may provide a web page 92 whereinsuch actions 16 are identified (e.g., as a set of hyperlinks to variousresources and actions 16 relevant to a device 14 of the device type),and may invoke a web scraping component 96 to extract the actions 16from the web page 92 of the first device source 32 and store suchactions 16 in the data store 68. The exemplary system 94 may alsocommunicate with a second device source 32 that actively notifies thesystem 94 of actions 16 available for one or more device types, and maytherefore include and invoke a device type action receiving component 98to receive the actions 16 from the second device source 32 and to storesuch actions 16 in the data store 68. The exemplary system 94 may alsobe configured to identify a set of actions 16 for a particular type ofunidentified device 14 (e.g., an unidentified device 14 that a user 12has previously requested to be associated with a user account 34). Theexemplary system 94 may therefore include a device type generic actionselecting component 102 that, for a particular unidentified device 14,identifies and stores in the data store 68 a set of actions 16 that maybe available for the device 14. In this manner, the exemplary system 94may identify and store in the data store 94 a suitable set of actions 16for many device types that various users 12 may request to register withuser accounts 34.

As a third example of this second aspect, instead of generallyidentifying actions 16 that may be available for all devices 14 of adevice type provided by a device source 32, an embodiment of thesetechniques may specifically identify the actions 16 available for aparticular device 14. As a first variation, a device 14 of a user 12 mayhave a particular device identifier, such as a distinctive code thatidentifies the device 14 to the device source 32 (e.g., a serialnumber). The device action service may therefore identify the actions 16available for the device 12 by communicating directly with the devicesource 32, e.g., by sending the device identifier of the device 14 tothe device source 32 and requesting the actions 16 that are availablefor the device 14. This variation may be advantageous, e.g., because thedevice source 32 may have more particular information about the devicestate of the device 14 and/or the actions 16 that are available therefor(e.g., the actions 16 that the user 12 and/or device 14 are authorizedto perform upon the device 14). As a second variation, the user 12 maybe associated with a service, such as a chat service, a media sharingservice, or a communications provision service. The device actionservice may identify the actions 16 available for a device 14 of theuser 12 by requesting from the service the actions 16 available for thedevice 14 (e.g., the chat functions, media sharing functions, and/orconnectivity that the service may authorize for and may be capable ofextending to the device 14), and upon receiving from the service theactions 16 available for the device 14, associating the actions 16 withthe device 14 in the data store 68. Those of ordinary skill in the artmay devise many ways of identifying the actions 16 available for aparticular device 14 (including for all devices 14 of a device typeand/or device category) while implementing the techniques presentedherein.

A third aspect that may vary among embodiments of these techniquesrelates to the manner of allowing a user 12 to register a device 14 forassociation with the user account 34 of the user 12. As a first example,the user 12 may simply specify the devices 16 that are operated by theuser 12 (e.g., by filling out a form of the device action service thatidentifies and/or describes the device 16). As a second example of thisthird aspect, the devices 16 may be automatically detected and reportedto the device action service. In a first variation, the user 12 mayutilize a particular presentation device to interact with the deviceaction service (e.g., a computer having a web browser that the user 12uses to visit a website of the device action service), and thepresentation device may be configured to detect the devices 14 of theuser 12 and report such devices 14 to the device action service. In asecond variation, the presentation device may identify itself to thedevice action service, and may automatically be registered by the deviceaction service as a device 14 of the user 12. As a third example of thisthird aspect, the registration request 76 to register a device 14 with auser account 34 of a user 12 may be received from the device source 32providing the device 14 to the user 12 (e.g., by the manufacturer uponreceiving a warranty registration of the device 14 completed by the user12; by a retail distributor or e-commerce site upon selling the device14 to the user 12; or by an administrator of company, organization, orinstitution affiliated with the user 12 upon provisioning the device 14for the user 12). As a fourth example of this third aspect, a particulardevice 14 may be shared among a plurality of users 12 (e.g., a device 14shared by several members of a family), and the device action servicemay associate the device 14 with the respective user accounts 34 of thetwo or more users 12 of the device 14. Those of ordinary skill in theart may devise many ways of detecting and registering devices 14 onbehalf of users 12 while implementing the techniques presented herein.

A fourth aspect that may vary among embodiments of these techniquesrelates to the presentation 38 to a user 12 of the devices 14 andactions 16 available therefor. As a first example, the presentation 38may present actions 16 for respective devices 14 as a device sourcereference provided by a device source 32 (e.g., a uniform resourceidentifier (URI) of a web page of the website 92 of the device source 32that informs the user 12 of how to perform a particular action 16, whichmay be presented in the presentation 38 as a hyperlink to the web page).Alternatively, the presentation 38 may include a user control that theuser 12 may activate to generate an action request to perform the action16 upon the device 14. For example, upon receiving the action request,the device action service may invoke an executable binary or script thatcommunicates with the device 14 to perform the action 16.

As a second example of this fourth aspect, the presentation 38 mayinclude additional information relating to the devices 14. As a firstvariation, the presentation 38 may include information about a devicestate of one or more devices 14, such as a set of applications installedon a device 14 or the versions thereof, an amount of storage capacity ofa device 14 that has been consumed or that is available, or an availablecharge of a battery powering a device 14. This information may berelayed to the device action service and inserted into the presentation38. For example, the device action service may be configured to receivea device state regarding respective devices 14 and store the devicestate in the data store 68 associated with the device 14, and whilegenerating the presentation 38, retrieve the device state from the datastore 68 and present the device state as part of the presentation 38.Alternatively, this information may be inserted into the presentation 38after delivery to the user 14 (e.g., by supplementing the presentation38 with information about the device states of devices 14 detected bythe presentation device of the user 12). Additionally, the actions 16presented with for a device 14 may relate to a current device state ofthe device 14 (e.g., offering a storage cleanup option for a device 14having low storage capacity).

As a second variation, the presentation 38 may include in the list ofdevices 14 one or more services with which the user 12 subscribes, aswell as various actions 16 that may be available for such services. Forexample, the presentation 38 may include a portable hard disk drive) anda set of storage actions related thereto (e.g., formatting or erasingthe hard disk drive, viewing the contents of the hard disk drive, orsynchronizing the hard disk drive with another data source), and mayalso include a cloud storage service and a similar set of actions 16related thereto. This example may represent the service as a virtualdevice 14 on par with the physical devices 14 operated by the user 12,and with a consistent presentation of actions 16 for both classes ofdevices 14.

As a third variation, the presentation 38 may include one or moreadvertisements for products or services that may be relevant to thedevices 16, such as a headset for a mobile phone device 14 or a new gamethat may be available for a game device 14. The advertisements may alsorelate to the device state of a device 14 (e.g., an advertisement for asale of supplemental memory for a device 14 having a device stateindicating low available memory).

FIG. 8 presents an illustration of an exemplary scenario 110 featuring apresentation 38 of devices 14 and actions 16 related thereto thatincorporates several of these examples. The presentation 38 in thisexemplary scenario 110 features several devices 14 and, for respectivedevices 14, a set of actions 16 that may be performed thereupon. As afirst example, for a first device 14, a set of actions 16 are presentedincluding a “View Contents” action 16 that is performed upon the device14 (e.g., by invoking an operation upon the device 14 that causes thedevice 14 to disclose the contents of a data store, and then presentingthe contents of the data store to the user 12), and an “InstallFirmware” action 16 that comprises a device source reference that, uponactivation, simply presents information provided by the device source 32(e.g., a uniform resource identifier (URI) presented as a hyperlink to aweb page including a firmware update, and possibly instructions forapplying the firmware update to the device 14). As a second example, thepresentation 38 includes, for the first device 14, a device state 112presenting information about the state of the device 14. As a thirdexample, the presentation 38 includes an advertisement 114 relating to adevice state 112 of the second device 14 (e.g., an advertisement formore memory for the second device 14 that is presented because thedevice state 112 indicates a shortage of memory). As a third example,the presentation 38 includes an action 16 associating a device 14 with aservice 116, such as a subscription to a podcast service that mayprovide additional actions 14 for the media player. As a fourth example,the presentation 38 includes, on par with the devices 14, a service 118to which the user 12 may have subscribed (e.g., a cloud storage servicethat is presented as a virtual device, along with a set of actions 16related thereto, in a manner consistent with the physical devices 14).In this manner, the embodiment in this exemplary scenario 110 of FIG. 8supplements various aspects of the presentation 38 of devices 14 andactions 16 related thereto. Those of ordinary skill in the art maydevise many such variations in the presentation 38 of devices 14 andactions 16 while implementing the techniques presented herein.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

As used in this application, the terms “component,” “module,” “system”,“interface”, and the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a controller and the controller can be a component. One or morecomponents may reside within a process and/or thread of execution and acomponent may be localized on one computer and/or distributed betweentwo or more computers.

Furthermore, the claimed subject matter may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, those skilled inthe art will recognize many modifications may be made to thisconfiguration without departing from the scope or spirit of the claimedsubject matter.

FIG. 9 and the following discussion provide a brief, general descriptionof a suitable computing environment to implement embodiments of one ormore of the provisions set forth herein. The operating environment ofFIG. 9 is only one example of a suitable operating environment and isnot intended to suggest any limitation as to the scope of use orfunctionality of the operating environment. Example computing devicesinclude, but are not limited to, personal computers, server computers,hand-held or laptop devices, mobile devices (such as mobile phones,Personal Digital Assistants (PDAs), media players, and the like),multiprocessor systems, consumer electronics, mini computers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like.

Although not required, embodiments are described in the general contextof “computer readable instructions” being executed by one or morecomputing devices. Computer readable instructions may be distributed viacomputer readable media (discussed below). Computer readableinstructions may be implemented as program modules, such as functions,objects, Application Programming Interfaces (APIs), data structures, andthe like, that perform particular tasks or implement particular abstractdata types. Typically, the functionality of the computer readableinstructions may be combined or distributed as desired in variousenvironments.

FIG. 9 illustrates an example of a system 130 comprising a computingdevice 132 configured to implement one or more embodiments providedherein. In one configuration, computing device 132 includes at least oneprocessing unit 136 and memory 138. Depending on the exact configurationand type of computing device, memory 138 may be volatile (such as RAM,for example), non-volatile (such as ROM, flash memory, etc., forexample) or some combination of the two. This configuration isillustrated in FIG. 9 by dashed line 134.

In other embodiments, device 132 may include additional features and/orfunctionality. For example, device 132 may also include additionalstorage (e.g., removable and/or non-removable) including, but notlimited to, magnetic storage, optical storage, and the like. Suchadditional storage is illustrated in FIG. 9 by storage 140. In oneembodiment, computer readable instructions to implement one or moreembodiments provided herein may be in storage 140. Storage 140 may alsostore other computer readable instructions to implement an operatingsystem, an application program, and the like. Computer readableinstructions may be loaded in memory 138 for execution by processingunit 136, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 138 and storage 140 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired information and which can be accessed by device 132. Anysuch computer storage media may be part of device 132.

Device 132 may also include communication connection(s) 146 that allowsdevice 132 to communicate with other devices. Communicationconnection(s) 146 may include, but is not limited to, a modem, a NetworkInterface Card (NIC), an integrated network interface, a radio frequencytransmitter/receiver, an infrared port, a USB connection, or otherinterfaces for connecting computing device 132 to other computingdevices. Communication connection(s) 146 may include a wired connectionor a wireless connection. Communication connection(s) 146 may transmitand/or receive communication media.

The term “computer readable media” may include communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” may include a signal that has one or moreof its characteristics set or changed in such a manner as to encodeinformation in the signal.

Device 132 may include input device(s) 144 such as keyboard, mouse, pen,voice input device, touch input device, infrared cameras, video inputdevices, and/or any other input device. Output device(s) 142 such as oneor more displays, speakers, printers, and/or any other output device mayalso be included in device 132. Input device(s) 144 and output device(s)142 may be connected to device 132 via a wired connection, wirelessconnection, or any combination thereof. In one embodiment, an inputdevice or an output device from another computing device may be used asinput device(s) 144 or output device(s) 142 for computing device 132.

Components of computing device 132 may be connected by variousinterconnects, such as a bus. Such interconnects may include aPeripheral Component Interconnect (PCI), such as PCI Express, aUniversal Serial Bus (USB), firewire (IEEE 1394), an optical busstructure, and the like. In another embodiment, components of computingdevice 132 may be interconnected by a network. For example, memory 138may be comprised of multiple physical memory units located in differentphysical locations interconnected by a network.

Those skilled in the art will realize that storage devices utilized tostore computer readable instructions may be distributed across anetwork. For example, a computing device 150 accessible via network 148may store computer readable instructions to implement one or moreembodiments provided herein. Computing device 132 may access computingdevice 150 and download a part or all of the computer readableinstructions for execution. Alternatively, computing device 132 maydownload pieces of the computer readable instructions, as needed, orsome instructions may be executed at computing device 132 and some atcomputing device 150.

Various operations of embodiments are provided herein. In oneembodiment, one or more of the operations described may constitutecomputer readable instructions stored on one or more computer readablemedia, which if executed by a computing device, will cause the computingdevice to perform the operations described. The order in which some orall of the operations are described should not be construed as to implythat these operations are necessarily order dependent. Alternativeordering will be appreciated by one skilled in the art having thebenefit of this description. Further, it will be understood that not alloperations are necessarily present in each embodiment provided herein.

Moreover, the word “exemplary” is used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as advantageousover other aspects or designs. Rather, use of the word exemplary isintended to present concepts in a concrete fashion. As used in thisapplication, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or”. That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. In addition, the articles “a” and “an” as usedin this application and the appended claims may generally be construedto mean “one or more” unless specified otherwise or clear from contextto be directed to a singular form.

Also, although the disclosure has been shown and described with respectto one or more implementations, equivalent alterations and modificationswill occur to others skilled in the art based upon a reading andunderstanding of this specification and the annexed drawings. Thedisclosure includes all such modifications and alterations and islimited only by the scope of the following claims. In particular regardto the various functions performed by the above described components(e.g., elements, resources, etc.), the terms used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., that is functionally equivalent), even though notstructurally equivalent to the disclosed structure which performs thefunction in the herein illustrated exemplary implementations of thedisclosure. In addition, while a particular feature of the disclosuremay have been disclosed with respect to only one of severalimplementations, such feature may be combined with one or more otherfeatures of the other implementations as may be desired and advantageousfor any given or particular application. Furthermore, to the extent thatthe terms “includes”, “having”, “has”, “with”, or variants thereof areused in either the detailed description or the claims, such terms areintended to be inclusive in a manner similar to the term “comprising.”

What is claimed is:
 1. A method of presenting to a user a set of devicesoperated by the user, the method using a computer having a processor anda data store and comprising: executing on the processor instructionsconfigured to: identify at least one action available for devices ofrespective device types; upon receiving from a user a registrationrequest to register a device of a device type, associate the device withthe user in the data store; and upon receiving from a user apresentation request for a presentation of the devices of the user:retrieve from the data store the devices associated with the user; andfor respective devices, present to the user the actions available forthe device.
 2. The method of claim 1, the actions available for a deviceselected from an action set comprising: a software installing action; adata synchronizing action; a service registering action; a device stateviewing action; and a device source visiting action.
 3. The method ofclaim 1: the user receiving the presentation on a presentation device;and the registration request received from the presentation device upondetecting a device of the user.
 4. The method of claim 1: the userreceiving the presentation on a presentation device; and theregistration request comprising an identification of the presentationdevice.
 5. The method of claim 1: the device provided to the user by adevice source, and the registration request received from the devicesource upon providing the device to the user.
 6. The method of claim 1:at least one device operated by at least two users; and associating thedevice with the user in the data store comprising: associating thedevice with the at least two users in the data store.
 7. The method ofclaim 1: at least one device of a device type and associated with adevice source; and identifying the actions available for the devicecomprising: upon receiving from the device source the actions availablefor devices of the device type, associating the actions with the devicetype in the data store.
 8. The method of claim 7, the instructionsconfigured to, upon receiving from the device source a new actionavailable for a device, notify the user of the new action available forthe device.
 9. The method of claim 7: at least one unidentified devicenot having an association with a device source; and identifying theactions available for the unidentified device comprising: associatingwith the unidentified device at least one generic action available forthe unidentified device.
 10. The method of claim 9: the unidentifieddevice associated with a device category; and identifying the actionsavailable for the unidentified device comprising: associating with theunidentified device at least one device category action available fordevices of the device category.
 11. The method of claim 1: at least onedevice having a device identifier and associated with a device source;and identifying the actions available for a device having a deviceidentifier comprising: sending the device identifier to the devicesource, and upon receiving from the device source the actions availablefor the device, associating the actions with the device in the datastore.
 12. The method of claim 1: the user associated with at least oneservice; and identifying the actions available for a device comprising:requesting from the service the actions available for the device, andupon receiving from the service the actions available for the device,associating the actions with the device in the data store.
 13. Themethod of claim 1: respective devices associated with a device source;and the presentation associating with an action available for a device adevice source reference provided by the device source for the device.14. The method of claim 1, the instructions configured to, uponreceiving from the user an action request to perform an action availablefor a device, perform the action with respect to the device.
 15. Themethod of claim 1: associating the device with the user in the datastore comprising: receiving a device state of the device, and storingthe device state in the data store associated with the device; andpresenting a device to the user comprising: retrieving the device stateof the device from the data store, and presenting the device state ofthe device to the user.
 16. The method of claim 15, at least one actionassociated with the device state of the device.
 17. The method of claim15, the presentation including at least one advertisement associatedwith a device state of a device.
 18. The method of claim 1: the userassociated with at least one service; and the presentation to the userincluding at least one action available for at least one serviceassociated with the user.
 19. A system configured to present to a user aset of devices operated by the user, the system comprising: a data storeconfigured to associate at least one user with at least one device; adevice action identifying component configured to identify at least oneaction available for devices of respective device types; a deviceregistering component configured to, upon receiving from a user aregistration request to register a device of a device type, associatethe device with the user in the data store; and a device presentingcomponent configured to, upon receiving from a user a presentationrequest for a presentation of the devices of the user: retrieve from thedata store the devices associated with the user; and for respectivedevices, present to the user the actions available for the device.
 20. Acomputer-readable storage medium comprising instructions that, whenexecuted on a processor of a device having a data store, present to auser on a presentation device a set of devices operated by the user andrespectively provided by a device source by: identifying at least oneaction available for devices of respective device types, respectiveactions selected from an action set comprising: a software installingaction; a data synchronizing action; a service registering action; adevice state viewing action; and a device source visiting action; uponreceiving from the device source a new action available for devices ofthe device type: associating the actions with the device type in thedata store, and notifying the user of the new action available for thedevice; upon receiving from the presentation device of the user aregistration request to register a device of a device type, the devicedetected by the presentation device and associated with a device sourceand a device state: associating the device with the user in the datastore, and storing the device state in the data store associated withthe device; upon receiving from the presentation device of the user aregistration request to register an unidentified device of a devicecategory, associating with the unidentified device at least one devicecategory action available for devices of the device category; uponreceiving from a user a presentation request for a presentation of thedevices of the user: retrieving from the data store the devicesassociated with the user; retrieving from the data store the devicestates associated with respective devices; for respective devices,presenting to the user: the device state of the device; the actionsavailable for the device; and at least one advertisement for at leastone product associated with the device state of the user; and uponreceiving from the user an action request to perform an action availablefor a device, performing the action with respect to the device.